package label_center

import (
	"time"

	"github.com/qida/gohp/timex"
)

const (
	IdScheme抽图 int = 1000
)

// 人工智能
const (
	IdScheme安全帽检测 int = 1001 + iota
	IdScheme孔洞覆盖不规范
	IdScheme配电箱门未关闭
	IdScheme乙快瓶未垂直放置
	IdScheme吊钩保险缺失
	IdScheme手板葫芦板手未固定
	IdScheme氧气瓶与乙炔瓶紧邻放置
	IdScheme需防雨设施无防雨保护
	IdScheme作业现场有易燃易爆物
	IdScheme佩戴攀登自锁器_末使用 // 1010
	IdScheme未使用深基坑一体化装罡
	IdScheme二次保护绳不规范_未用二次保护绳
	IdScheme电源线敷设不规范
	IdScheme贅粞火识别
	IdScheme地脚螺栓螺母缺失
	IdScheme绞磨_卷扬机受力前方有人
	IdScheme张力架线机牵引机操作未使用绝缘垫
	IdScheme张力机未使用接地滑车
	IdScheme烟火识别 // 1019
	IdScheme图片相似度识别
	IdScheme门窗开合检测
	IdScheme图片相似度低识别 // 1022
	IdScheme定时对比检测
	IdScheme倾倒检测
	IdScheme掉落检测
	IdScheme不合格检测
	IdScheme杂物堆积检测
	IdScheme物品移位检测
	IdScheme物品晃动检测
	IdScheme非人形识别
)

// 设备报警
const (
	IdScheme移动侦测报警 int = 2001 + iota
	IdScheme视频遮挡报警
	IdScheme进入区域侦测报警
	IdScheme离开区域侦测报警 // 2004
)

// 前端标注
const (
	IdScheme前端封面 int = 3000 + iota
	IdScheme前端标注     // 3001
)

// 人工智能平台 人脸识别
const (
	IdScheme人脸检测 int = 4001 + iota
	IdScheme活体检测
	IdScheme人脸对比
	IdScheme人脸搜索
	IdScheme多人脸搜索 // 4005
)

// 人工智能平台
const (
	IdScheme语音合成 int = 4011 + iota
	IdScheme情感分析     // 4012
	IdSchemeNLP
)

// 人工智能平台 OCR
const (
	IdSchemeOCR表格识别 int = 4101 + iota
	IdSchemeOCR营业执照识别
	IdSchemeOCR手写体识别
	IdSchemeOCR印章识别
	IdSchemeOCR增值税文字识别
	IdSchemeOCR高精度文字识别 // 4106
	IdSchemeOCR增值税卷票识别
	IdSchemeOCR完税证明识别
	IdSchemeOCR增通用机打发票识别
	IdSchemeOCR汽车票识别
	IdSchemeOCR轮船票识别
	IdSchemeOCR机票识别
	IdSchemeOCR火车票识别
	IdSchemeOCR过路费发票识别
	IdSchemeOCR购车发票识别
	IdSchemeOCR二手车发票识别
	IdSchemeOCR定额发票识别
	IdSchemeOCR出租车票识别
	IdSchemeOCR车牌识别
	IdSchemeOCR身份证识别
	IdSchemeOCR银行卡识别
	IdSchemeOCR名片识别
	IdSchemeOCR企业执照识别
)

// 人工智能平台 冀北
const (

	// 冀北作业现场典型违章智能识别对应类别编码：
	IdScheme高处作业未佩戴安全带      int = 4201 + iota // 00001002
	IdScheme高处作业未正确使用安全带                      // 01010102
	IdScheme梯上作业无人扶梯                          // 06001006
	IdScheme作业现场孔洞未遮盖或无防护措施                   // 06001008
	IdScheme作业现场未设安全围栏                        // 00002001
	IdScheme作业现场未设标识牌                         // 00002002
	IdScheme跨越安全围栏                            // 91001001
	IdScheme未戴安全帽                             // 00001001    4208
	IdScheme未佩戴绝缘手套                           // 00001005
	IdScheme未规范着装                             // 00001011 4210
	IdScheme大型机械作业识别                          // 91003003
	IdScheme牵引机作业识别                           // 91003004 NEW
	IdScheme输电线路三跨作业识别                        // 91003005
	IdScheme高处作业识别                            // 91003006
	IdScheme组塔架线作业识别                          // 91003001
	IdScheme深基坑作业识别                           // 91003007
	IdScheme动火作业识别                            // 91003009
	IdScheme变电站有人检测                           // 91001004
	IdScheme安全准入照片智能校核                        // 20001001
	IdScheme特种作业人员资质自动核查                      // 20001002
	IdScheme视频质量智能分析诊断                        // 30001001

	// IdScheme活体闯入 int = 4222 //00001001    4208

)

// 充电卫士
const (
	IdScheme充电卫士行为上报数据 int = 5001 + iota
	IdScheme充电卫士车辆出入数据
)

// 第三方抽图
const (
	IdSchemeUVP抽图 int = 6001 + iota
)

// 方案表，状态
const (
	StatusBaseScheme删除 = -10

	StatusBaseScheme停用   = -1
	StatusBaseScheme无子方案 = 5
	StatusBaseScheme正常   = 10
	// StatusBaseScheme已发送未完成 = 20
	// StatusBaseScheme已完成    = 30

	TypeScheme历史方案 = 1
	TypeScheme实时方案 = 2
)

// 方案任务记录

// 方案 创建 请求
type ReqBaseSchemeCreate struct {
	IdScheme   int    `json:"IdScheme"`   // 方案ID
	SchemeName string `json:"SchemeName"` // 方案名称

	Log Log `json:"Log,omitempty"` // 追踪日志
}

// 方案 删除 请求
type ReqBaseSchemeDelete struct {
	IdScheme int `json:"IdScheme"`      // 方案Id
	Log      Log `json:"Log,omitempty"` // 追踪日志
}

// 方案 修改 请求
type ReqBaseSchemeUpdate struct {
	IdScheme   int    `json:"IdScheme"`   // 方案Id
	SchemeName string `json:"SchemeName"` // 方案名称
	Status     int8   `json:"Status"`     // 状态

	Log Log `json:"Log,omitempty"` // 追踪日志
}

// 方案 查询 请求
type ReqBaseSchemeSearch struct {
	KeyWord     string    `json:"KeyWord,omitempty"`     // 全局关键词
	IdScheme    int       `json:"IdScheme"`              // 方案Id
	IdSchemes   []int     `json:"IdSchemes"`             // 方案Id集
	SchemeName  string    `json:"SchemeName"`            // 方案名称
	Status      int8      `json:"Status"`                // 状态
	TimeCreate  time.Time `json:"TimeCreate"`            // 记录创建时间
	TimeUpdate  time.Time `json:"TimeUpdate"`            // 最后修改时间
	TimeDelete  time.Time `json:"TimeDelete"`            // 删除时间
	Page        int64     `json:"Page"`                  // 必填 指定返回页码号
	Limit       int64     `json:"Limit"`                 // 必填 指定返回每页条数
	FieldOrders []string  `json:"FieldOrders,omitempty"` // 指定要排序的字段数组，默认升序，降序加前缀-，如 ["-Id", "Name"] 按Id降序Name升序排列

	Log Log `json:"Log,omitempty"` // 追踪日志
}

type ReqBaseIdScheme struct {
	IdScheme int `json:"IdScheme"` // 方案Id

	Log Log `json:"Log,omitempty"` // 追踪日志
}

// 方案 创建 请求
type ReqBaseSchemeNumFailureUpdate struct {
	IdScheme    int64  `json:"IdScheme"` // 方案ID
	Error       error  `json:"-"`
	ErrorString string `json:"ErrorString"`
}

type RespBaseScheme struct {
	IdScheme   int    `json:"IdScheme"`   // 方案Id
	SchemeName string `json:"SchemeName"` // 方案名称
	Status     int8   `json:"Status"`     // 状态
	StatusText string `json:"StatusText"` // 方案名称

	TimeCreate time.Time      `json:"TimeCreate"` // 记录创建时间
	TimeUpdate timex.TimeNull `json:"TimeUpdate"` // 最后修改时间
}

// 响应 查询列表
type RespBaseSchemes struct {
	Total       int64            `json:"Total"`       // 返回列表的总条数
	BaseSchemes []RespBaseScheme `json:"BaseSchemes"` // 返回列表对象
}
